home *** CD-ROM | disk | FTP | other *** search
/ Acorn User: China / Acorn User China CD-ROM (UK) (Disc A) / Acorn User China CD-ROM (UK) (Disc A).bin / HENSA / HD / MAPMANAGER.ARC / s_ParseTree < prev    next >
Encoding:
Text File  |  1993-12-19  |  1.2 KB  |  63 lines

  1. ;> s.ParseTree
  2. ;
  3. ; 21 Nov 1993
  4. ; 04 Dec 1993    added debug info
  5. ; 05 Dec 1993    debugged debug info
  6.  
  7.     AREA    ParseDirTree,CODE,READONLY
  8.  
  9.     GET    ^.h.RegNames
  10.     GET    ^.h.SWIs
  11.     GET    ^.h.ByteNames
  12.     GET    ^.h.Reasons
  13.     GET    ^.h.Macros
  14.     GET    h.Head
  15.     GET    h.Macros
  16.  
  17.     EXPORT    ReadNextEntry
  18.  
  19. ;******************************************************************************
  20. ;
  21. ;ReadNextEntry
  22. ;-------------
  23. ; on entry:
  24. ; [sp]    index of object in current dir
  25. ; [Path]directory to be searched
  26. ; r0    pointer to string to match, or 0 for '*'
  27. ; on exit:
  28. ; C    set if object read OK
  29. ;    data is in GBPBuffer
  30.  
  31.     Routine    "ReadNextEntry","r0-r6"
  32.     MOV    r6,r0
  33.     MOV    r0,#OS_GBPB_ReadDirEntriesFullFileInfo        ; I know that '#11' is shorter!
  34.     ADR    r1,Path
  35.     ADR    r2,GBPBuffer                    ; where to put the info
  36.     MOV    r3,#1
  37.     LDR    r4,[sp,#32]                    ; skip 8 regs we pushed on the stack
  38.     MOV    r5,#GBPBufferEnd-GBPBuffer
  39.     SWI    XOS_GBPB
  40.     STR    r4,[sp,#32]                    ; update 'r4' calue
  41. ; BCC nofake
  42. ; BVS nofake
  43. ; LDR r1,GBPB_SIN        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  44. ; ORR r1,r1,#&8100
  45. ; STR r1,GBPB_SIN
  46. ; CMP r4,#0
  47. ;nofake
  48.     [    debug
  49.     BVS    %56
  50.     MOV    r1,pc
  51.     SWI    XOS_WriteI+' '
  52.     SWI    XOS_WriteI+'"'
  53.     ADR    r0,GBPB_Name
  54.     SWI    XOS_Write0
  55.     SWI    XOS_WriteI+'"'
  56.     TEQP    pc,r1
  57.     NOP
  58. 56
  59.     ]
  60.     RoutineEndFlags
  61.  
  62.     END
  63.